home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmiSoft / Dev / C / Tinygl.lha / TinyGL / examples / triangle.c < prev   
Encoding:
C/C++ Source or Header  |  2002-11-17  |  1.2 KB  |  69 lines

  1. /*************************************
  2. *  Drawing a triangle
  3. *
  4. ************/
  5.  
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <GL/glut.h>
  9.  
  10.  
  11. int glutWindow;
  12.  
  13.  
  14. void init(void)     {
  15.     glEnable(GL_DEPTH_TEST);
  16.     glShadeModel(GL_FLAT);
  17.     glClearColor(0.0, 0.0, 0.0, 0.0) ;
  18. }
  19.  
  20.  
  21. void reshape(int width, int height) {
  22.     glViewport(0, 0, (GLint) width, (GLint) height);
  23.     glMatrixMode(GL_PROJECTION);
  24.     glLoadIdentity();
  25.     glFrustum(-2.0, 2.0, -2.0, 2.0, 6.0, 20.0);
  26.     glMatrixMode(GL_MODELVIEW);
  27.     glLoadIdentity();
  28.     glTranslatef(0.0, 0.0, -8.0);
  29. }
  30.  
  31.  
  32. void display(void)    {
  33.     glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
  34.     glPushMatrix();
  35.     glTranslatef(-1.0, 0.0, 0.0);
  36.     glRotatef(0, 0.0, 0.0, 1.0);
  37.     glBegin(GL_TRIANGLES);
  38.         glColor3f(1.0f, 0.0f, 0.0f);
  39.         glVertex2f(0, -0.5);
  40.         glColor3f(0.0f, 1.0f, 0.0f);
  41.         glVertex2f(1.0, 1.0);
  42.         glColor3f(0.0f, 0.0f, 1.0f);
  43.         glVertex2f(-1.0, 1.0);
  44.     glEnd();
  45.     glPopMatrix();
  46.     
  47.     glutSwapBuffers();
  48. }
  49.  
  50.  
  51. void idle() {
  52.     glutPostRedisplay();
  53. }
  54.  
  55.  
  56. int main(int argc, char** argv)    {
  57.     glutInit(&argc, argv);
  58.     glutInitWindowSize(320, 240);
  59.     glutInitWindowPosition(0, 0);
  60.     glutWindow = glutCreateWindow("OpenGL triangle");
  61.     init();
  62.     glutDisplayFunc(display);
  63.     glutReshapeFunc(reshape);
  64.     glutIdleFunc(idle);
  65.     glutMainLoop();
  66.  
  67.     return 0 ;
  68. }
  69.